// components/lee-chat-photo/lee-chat-photo.js
const AJAX = require("../../common/request")
const API = require("../../common/api")
Component({

	options: {
		/**
		 * isolated 表示启用样式隔离，在自定义组件内外，使用 class 指定的样式将不会相互影响（一般情况下的默认值）；
		  apply-shared 表示页面 wxss 样式将影响到自定义组件，但自定义组件 wxss 中指定的样式不会影响页面；
		  shared 表示页面 wxss 样式将影响到自定义组件，自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared 或 shared 的自定义组件
		 */
		styleIsolation: "apply-shared", // 组件样式对外隔离
		multipleSlots: true // 在组件定义时的选项中启用多slot支持
	},
	/**
	 * 组件的属性列表
	 */
	properties: {
		list: {
			type: Array,
			value: [
				// "http://10.0.0.38:8080/profile/2024/01/05/0ZZDWLsLkStbac1928b90db0f2ec7f821cbc46f6e162_20240105174605A004.jpeg",
				// "http://10.0.0.38:8080/profile/2024/01/05/0ZZDWLsLkStbac1928b90db0f2ec7f821cbc46f6e162_20240105174605A004.jpeg"
			],
			observer: function (newVal, oldVal) {
				// 属性值变化时执行
			}
		},
		returnData:{
			type: Object,
			value:{}
		}
	},

	/**
	 * 组件的初始数据
	 */
	data: {

	},
	lifetimes: {
		attached: function () {
			// 在组件实例进入页面节点树时执行
			console.log("查看图片组件", this.properties.list)
		},
		detached: function () {
			// 在组件实例被从页面节点树移除时执行
		},
	},
	/**
	 * 组件的方法列表
	 */
	methods: {
		// 选择图片上传
		uploadPhoto() {
			wx.chooseImage({
				count: 1,
				sizeType: ['compressed'],
				sourceType: ['album', 'camera'],
				success: resChoose => {
					// tempFilePath可以作为img标签的src属性显示图片
					const tempFilePath = resChoose.tempFilePaths[0]
					// 执行图片上传
					AJAX.UPLOADFILE("/system/AppWechat/addfile", tempFilePath, {}).then(resUpload => {
						// 图片地址赋值回显
						let result = JSON.parse(resUpload.data)
						let imgUrl = API.UPLOADURL + result.msg
						console.log("图片地址赋值回显++", imgUrl)
						this.properties.list.push(imgUrl)
						this.setData({
							list: this.properties.list
						})
						this.properties.returnData.photoList = this.properties.list
						// 返回父组件
						this.triggerEvent('change', this.properties.returnData, {})
					}).catch(err => {
						console.error(err)
						wx.showToast({
							title: "图片上传失败",
							icon: "none"
						})
					})
				}
			})
		},
		setPhoto(e) {
			// 打开操作菜单
			wx.showActionSheet({
				itemList: ['放大', '删除'],
				success: res => {
					switch (res.tapIndex) {
						// 放大
						case 0:
							let viewUrl = e.currentTarget.dataset.imgurl
							wx.previewImage({
								urls: [viewUrl]
							})
							break;
							// 删除
						case 1:
							this.delPhoto(e.currentTarget.dataset.index)
							break;
						default:
							break;
					}
				},
				fail(res) {
					console.log(res.errMsg)
				}
			})
		},
		delPhoto(index) {
			this.properties.list.splice(index, 1)
			this.setData({
				list: this.properties.list
			})
			this.properties.returnData.photoList = this.properties.list
			// detail对象，提供给事件监听函数{向父组件传参}
			var myEventDetail = this.properties.returnData
			// 触发事件的选项{本次向父组件触发事件的配置项}
			var myEventOption = {}
			this.triggerEvent('change', myEventDetail, myEventOption)
		}
	}
})